package com.zxy.ziems.server.monitor.hik;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 海康事件通知
 * @author chdzq
 * @create 2023/5/30
 */
@Data
public class HikEventNotification {
    private String method;

    private Params params;

    @Data
    public static class Params {
        private String sendTime;//事件从接收者（程序处理后）发出的时间	是	64	ISO8601，示例：2018-08-15T 15:53:47.000+08:00
        private String ability;//	String	事件类别	是	64	视频事件
        private List<Event> events;
    }

    @Data
    public static class  Event {
        /**
         * 事件唯一标识	是	64	同一事件若上报多次，则上报事件的eventId相同
         */
        private String eventId;
        /**
         * 事件源编号，物理设备是资源编号
         */
        private String srcIndex;
        /**
         * 事件源类型
         */
        private String srcType;
        /**
         * 事件源名称
         */
        private String srcName;

        /**
         * 事件类型
         */
        private Integer eventType;

        /**
         * 事件状态
         * 0-瞬时
         * 1-开始
         * 2-停止
         * 3-事件脉冲
         * 4-事件联动结果更新
         * 5-异步图片上传
         */
        private Integer status;

        /**
         * 事件等级：
         * 0-未配置
         * 1-低
         * 2-中
         * 3-高
         * 此处事件等级是指在事件联动中配置的等级，需要配置了事件联动，才返回这个字段
         */
        private String eventLvl;

        /**
         * 脉冲超时时间
         */
        private Integer timeout;
        /**
         * 事件发生时间（设备时间）
         */
        @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
        private LocalDateTime happenTime;

        /**
         * 事件发生的事件源父设备编码
         */
        private String srcParentIndex;
    }
}
